home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / xcoral / xcoral.lha / xcoral-1.72 / cb_names.c < prev    next >
C/C++ Source or Header  |  1993-02-16  |  4KB  |  207 lines

  1. /*
  2. ** Copyright 1989, 1992 by Lionel Fournigault
  3. **
  4. ** Permission to use, copy, and distribute for non-commercial purposes,
  5. ** is hereby granted without fee, providing that the above copyright
  6. ** notice appear in all copies and that both the copyright notice and this
  7. ** permission notice appear in supporting documentation.
  8. ** The software may be modified for your own purposes, but modified versions
  9. ** may not be distributed.
  10. ** This software is provided "as is" without any expressed or implied warranty.
  11. **
  12. **
  13. */
  14.  
  15. #include <stdio.h>
  16. #include <X11/Xlib.h>
  17. #include <X11/Xutil.h>
  18.  
  19. #include "options.h"
  20. #include "xcoral.h"
  21. #include "browser.h"
  22. #include "flist.h"
  23.  
  24. char *menu_names[] = { 
  25.     "File", "Window", "Modes", "Search", "Region", "Font", "Misc", 0
  26. };
  27.  
  28. static char *file_menu [] = {
  29.     "New File        ^x^k",
  30.     "Read File       ^x^f",
  31.     "Insert File     ^x i",
  32.     "Save File       ^x^s",
  33.     "Write File as   ^x^w",
  34.     "Quit            ^x^c",
  35.     0
  36. };
  37.             
  38. static char *window_menu [] = {
  39.     "New Text Window     ^x 2",
  40.     "Delete Text Window  ^x^c",
  41.     "Display Kill Buffer",
  42.     "Display Open Files  ^x b",
  43.     "Display Browser",
  44.     "Unmap Browser",
  45.     0
  46. };
  47.  
  48. static char *mode_menu [] = {
  49.     "Default text",
  50.     "C",
  51.     "C ++",
  52.     0 
  53. };
  54.             
  55. static char *search_menu [] = { 
  56.     "Forward Search        ^s",
  57.     "Backward Search       ^r",
  58.     "Query Replace      Esc q",
  59.     "Global Replace     Esc r",
  60.     "Goto Line Number    ^x l",
  61.     0
  62. };
  63.  
  64. static char *mark_menu [] = {
  65.     "Set Mark              ^space",
  66.     "Exchange point mark     ^x^x",
  67.     "Kill Region               ^w",
  68.     "Copy Region            Esc w",
  69.     "Paste Region              ^y",
  70.     0
  71. };
  72.  
  73. static char *font_menu [] = { 
  74.     "Courier 10",
  75.     "Courier 12",
  76.     "Courier bold 14",
  77.     "Courier 18",
  78.     "Courier 24",
  79.     "Helvetica 14",
  80.     "Helvetica 20",
  81.     "Times bold 14",
  82.     "Times 18",
  83.     "Times 20",
  84.     "Times 24",
  85.     "Schoolbook 18",
  86.     0 
  87. };
  88.  
  89. static char *font_names [] = {
  90.     "-adobe-courier-medium-r-normal--10-100-75-75-m-60-iso8859-1",
  91.     "-adobe-courier-medium-r-normal--12-120-75-75-m-70-iso8859-1",
  92.     "-adobe-courier-bold-r-normal--14-140-75-75-m-90-iso8859-1",
  93.     "-adobe-courier-medium-r-normal--18-180-75-75-m-110-iso8859-1",
  94.     "-adobe-courier-medium-r-normal--24-240-75-75-m-150-iso8859-1",    
  95.     "-adobe-helvetica-medium-r-normal--14-100-100-100-p-76-iso8859-1",
  96.     "-adobe-helvetica-medium-r-normal--20-140-100-100-p-100-iso8859-1",
  97.     "-adobe-times-bold-r-normal--14-140-75-75-p-77-iso8859-1",
  98.     "-adobe-times-medium-r-normal--18-180-75-75-p-94-iso8859-1",
  99.     "-adobe-times-medium-r-normal--20-140-100-100-p-100-iso8859-1",
  100.     "-adobe-times-medium-r-normal--24-240-75-75-p-132-iso8859-1",
  101.     "-adobe-new century schoolbook-medium-r-normal--18-180-75-75-p-103-iso8859-1",
  102.     0
  103. };
  104.  
  105. static char *misc_menu [] = {
  106.     "New C++ Class",
  107.     "New C++ Method",
  108.     "New C Function",
  109.     "Version", 
  110.     "help", 
  111.     0
  112. };
  113.  
  114. char **item_names [] = {
  115.     file_menu, window_menu, mode_menu, search_menu, mark_menu, font_menu, misc_menu, 0
  116. };
  117.  
  118. static void (*f_file []) () = {
  119.     MenuNewFile,
  120.     MenuReadFile,
  121.     MenuInsertFile,
  122.     MenuSaveFile,
  123.     MenuWriteFile,
  124.     (void (*)()) DeleteWindow, 
  125.     0
  126. };
  127.  
  128. static void (*f_window []) () = { 
  129.     NewWindow,
  130.     (void (*)()) DeleteWindow,
  131.     DisplayKillBuffer,
  132.     DisplayOpenFiles,
  133.     DisplayBrowser,
  134.     UnmapBrowser,
  135.     0
  136. };
  137.  
  138. static void (*f_mode []) () = {
  139.     SetTextMode,
  140.     SetCMode,
  141.     SetCCMode,
  142.     0
  143. };
  144.  
  145. static  void (*f_search []) () = { 
  146.     MenuForwardSearch,
  147.     MenuBackwardSearch,
  148.     MenuQueryReplace,
  149.     MenuGlobalReplace,
  150.     MenuGotoLine,
  151.     0
  152. };
  153.  
  154. static void (*f_mark []) () = {
  155.     SetMark,
  156.     ExchangePointMark,
  157.     KillRegion,
  158.     CopyRegion,
  159.     PasteRegion,
  160.     0
  161. };
  162.  
  163. static void (*f_font []) () = { 
  164.     0
  165. };
  166.  
  167. static void (*f_misc []) () = {
  168.     MakeClass,
  169.     MakeMethod,
  170.     MakeFunction,
  171.     Version,
  172.     Help,
  173.     0
  174. };
  175.  
  176. void (**func_names []) () = {
  177.     f_file, f_window, f_mode, f_search, f_mark, f_font, f_misc, 0
  178. };
  179.  
  180. #define M_FONTS 5
  181.  
  182. /*
  183. **    Function name : ExecMenuFunc
  184. **
  185. **    Description : Les fonctions utilisables a partir dee menus.
  186. **    Input : 
  187. **    Ouput :
  188. */
  189. void ExecMenuFunc ( vm, item )
  190.     register vm, item;
  191. {
  192.     extern void exit ();
  193.  
  194.     if ( vm == -1 ) return;
  195.  
  196.     if ( vm ==  M_FONTS ) {
  197.         ChangeTextFont ( dpy, edwin -> text, font_names [item] );
  198.         return;
  199.     }
  200.     ((func_names [vm]) [item]) ( edwin -> text );
  201.     if ( IsLastWindow ( 0 ) == True ) {
  202.         XCloseDisplay ( dpy );
  203.         (void) exit (0);
  204.     }
  205. }
  206.  
  207.